home *** CD-ROM | disk | FTP | other *** search
- package com.sun.java.swing;
-
- import com.sun.java.accessibility.Accessible;
- import com.sun.java.accessibility.AccessibleContext;
- import com.sun.java.accessibility.AccessibleRole;
- import com.sun.java.accessibility.AccessibleSelection;
- import java.awt.Component;
- import java.util.Vector;
-
- class JMenu$AccessibleJMenu extends JMenuItem.AccessibleJMenuItem implements AccessibleSelection {
- // $FF: synthetic field
- JMenu this$0;
-
- public int getAccessibleChildrenCount() {
- Component[] children = this.this$0.getMenuComponents();
- int count = 0;
-
- for(int j = 0; j < children.length; ++j) {
- if (children[j] instanceof Accessible) {
- ++count;
- }
- }
-
- return count;
- }
-
- public Accessible getAccessibleChild(int i) {
- Component[] children = this.this$0.getMenuComponents();
- int count = 0;
-
- for(int j = 0; j < children.length; ++j) {
- if (children[j] instanceof Accessible) {
- if (count == i) {
- if (children[j] instanceof JComponent) {
- AccessibleContext ac = ((Accessible)children[j]).getAccessibleContext();
- ac.setAccessibleParent(this.this$0);
- }
-
- return (Accessible)children[j];
- }
-
- ++count;
- }
- }
-
- return null;
- }
-
- public AccessibleRole getAccessibleRole() {
- return AccessibleRole.MENU;
- }
-
- public AccessibleSelection getAccessibleSelection() {
- return this;
- }
-
- public int getAccessibleSelectionCount() {
- MenuElement[] me = MenuSelectionManager.defaultManager().getSelectedPath();
- if (me != null) {
- for(int i = 0; i < me.length; ++i) {
- if (me[i] == this.this$0 && i + 1 < me.length) {
- return 1;
- }
- }
- }
-
- return 0;
- }
-
- public Accessible getAccessibleSelection(int i) {
- if (i >= 0 && i < this.this$0.getItemCount()) {
- MenuElement[] me = MenuSelectionManager.defaultManager().getSelectedPath();
- if (me != null) {
- label28:
- for(int j = 0; j < me.length; ++j) {
- if (me[j] == this.this$0) {
- do {
- ++j;
- if (j >= me.length) {
- continue label28;
- }
- } while(!(me[j] instanceof JMenuItem));
-
- return (Accessible)me[j];
- }
- }
- }
-
- return null;
- } else {
- return null;
- }
- }
-
- public boolean isAccessibleChildSelected(int i) {
- MenuElement[] me = MenuSelectionManager.defaultManager().getSelectedPath();
- if (me != null) {
- JMenuItem mi = this.this$0.getItem(i);
-
- for(int j = 0; j <= me.length; ++j) {
- if (me[j] == mi) {
- return true;
- }
- }
- }
-
- return false;
- }
-
- private MenuElement[] buildMenuElementArray(JMenu leaf) {
- Vector elements = new Vector();
- Component current = leaf.getPopupMenu();
-
- while(true) {
- while(!(current instanceof JPopupMenu)) {
- if (current instanceof JMenu) {
- JMenu menu = (JMenu)current;
- elements.insertElementAt(menu, 0);
- current = ((Component)menu).getParent();
- } else if (current instanceof JMenuBar) {
- JMenuBar bar = (JMenuBar)current;
- elements.insertElementAt(bar, 0);
- MenuElement[] me = new MenuElement[elements.size()];
- elements.copyInto(me);
- return me;
- }
- }
-
- JPopupMenu pop = (JPopupMenu)current;
- elements.insertElementAt(pop, 0);
- current = pop.getInvoker();
- }
- }
-
- public void addAccessibleSelection(int i) {
- if (i >= 0 && i < this.this$0.getItemCount()) {
- JMenuItem mi = this.this$0.getItem(i);
- if (mi != null) {
- if (mi instanceof JMenu) {
- MenuElement[] me = this.buildMenuElementArray((JMenu)mi);
- MenuSelectionManager.defaultManager().setSelectedPath(me);
- } else {
- ((AbstractButton)mi).doClick();
- MenuSelectionManager.defaultManager().setSelectedPath((MenuElement[])null);
- }
- }
-
- }
- }
-
- public void removeAccessibleSelection(int i) {
- if (i >= 0 && i < this.this$0.getItemCount()) {
- JMenuItem mi = this.this$0.getItem(i);
- if (mi != null && mi instanceof JMenu && ((JMenu)mi).isSelected()) {
- MenuElement[] old = MenuSelectionManager.defaultManager().getSelectedPath();
- MenuElement[] me = new MenuElement[old.length - 1];
-
- for(int j = 0; j < old.length - 1; ++j) {
- me[j] = old[j];
- }
-
- MenuSelectionManager.defaultManager().setSelectedPath(me);
- }
-
- }
- }
-
- public void clearAccessibleSelection() {
- MenuElement[] old = MenuSelectionManager.defaultManager().getSelectedPath();
- if (old != null) {
- for(int j = 0; j < old.length; ++j) {
- if (old[j] == this.this$0) {
- MenuElement[] me = new MenuElement[j + 1];
- System.arraycopy(old, 0, me, 0, j);
- me[j] = this.this$0.getPopupMenu();
- MenuSelectionManager.defaultManager().setSelectedPath(me);
- }
- }
- }
-
- }
-
- public void selectAllAccessibleSelection() {
- }
-
- // $FF: synthetic method
- JMenu$AccessibleJMenu(JMenu this$0) {
- super(this$0);
- this.this$0 = this$0;
- }
- }
-